package ${packageName}.dao.${moduleType};

import java.util.List;

import java.sql.SQLException;
import org.apache.ibatis.annotations.Param;

import com.billionsfinance.crs.model.Page;
import com.billionsfinance.crs.model.PageResult;
import com.billionsfinance.crs.model.${moduleType}.${module};

/**
* ${hessianDesc}接口
* @FileName:I${module}Dao.java
* @author:${createdName}
* @date:${createdTime}
* @Version:V1.00
*/
public  interface I${module}Dao {

	/**
	 * 查询LIST
	 * @param ${lowModule} 
	 * @return List<${module}> 
	 * @throws SQLException 
	 */
	List<${module}> find${module}List(${module} ${lowModule}) throws SQLException;
	
	/**
	 * 根据ID得到Model
	 * @param id 
	 * @return ${module} 
	 * @throws SQLException  
	 */
	${module} read${module}ById(Long id) throws SQLException;
	
	/**
	 * 新增Model
	 * @param ${lowModule}  
	 * @return int 受影响行数
	 * @throws SQLException    
	 */
	int create${module}(${module} ${lowModule}) throws SQLException;
	
	/**
	 * 修改
	 * @param ${lowModule} 
	 * @return int 受影响行数
	 * @throws SQLException  
	 */
	int update${module}(${module} ${lowModule}) throws SQLException;
	
	/**
	 * update is_delte='Y' 逻辑删除
	 * @param id 要删除的对象ID
	 * @return int 受影响行数
	 * @throws SQLException 
	 */
	int delete${module}ById(Long id) throws SQLException;
	
	/**
	 * 物理删除
	 * @param id 要物理删除的对象ID
	 * @return int 受影响行数 
	 * @throws SQLException 
	 */
	int physicalDelete${module}ById(Long id) throws SQLException;
	
	/**
	 * 分页查询
	 * @param ${lowModule} 
	 * @param pageVO 
	 * @return PageResult<${module}> 
	 * @throws SQLException 
	 */
	PageResult<${module}> select${module}Set(@Param("${lowModule}") ${module} ${lowModule}, @Param("page") Page pageVO) throws SQLException;
	
}
